﻿using System;

namespace Skynet.CommonLibrary.ThreadRefreshTime.Interface
{
    /// <summary>
    /// 刷新元素接口
    /// </summary>
    ///<remarks>
    /// 作者：         李志强
    /// 开发时间：  2011-03-28
    /// </remarks>
    public interface IRefreshTimer
    {
        /// <summary>
        /// 唯一标识
        /// </summary>
        string RefreshID { get; set; }

        /// <summary>
        /// 刷新间隔（秒）
        /// </summary>
        int RefreshInterval { get; set; }

        /// <summary>
        /// 刷新操作
        /// </summary>
        Action<Action<IRefreshTimer, Exception>> Refresh { get; set; }

        /// <summary>
        /// 第一次执行操作的时间
        /// </summary>
        DateTime ExecutionTime { get; set; }

        /// <summary>
        /// 最后一次刷新时间
        /// </summary>
        DateTime LastRefreshTime
        {
            get;
            set;
        }

        /// <summary>
        /// 描述
        /// </summary>
        string Description { get; set; }

        /// <summary>
        /// 对某些参数进行一个验证
        /// </summary>
        void Verify();
    }
}
